#ifndef M3U8_FILE_H
#define M3U8_FILE_H

#include "net_file_all.h"
#include "chain_url.h"

// m3u8 instance
typedef struct m3u8_s {
    NetData *content;
    chain_url_t* pl;
    chain_url_t* pl_current;
} m3u8_t;

// 定义M3U8File结构体来存储M3U8文件的相关信息
typedef struct M3U8File_s {
    char* url;
    char* url_base;  // 基础URL，用于处理相对路径
    char* url_last_pl;
    m3u8_t *pM3U8;      // M3U8实例
    NetData *currentTsBuffer; // 当前正在读的 ts 流的缓存
}M3U8File;

// 打开M3U8文件
M3U8File* m3u8_fopen(const char* url);

// 关闭M3U8文件
void m3u8_fclose(M3U8File* m3u8File);

// 从M3U8文件中读取数据
size_t m3u8_fread(void* buffer, size_t size, size_t count, M3U8File* m3u8File);

// 定位M3U8文件中的位置
int m3u8_fseek(M3U8File* m3u8File, long offset, int origin);

#endif // M3U8_FILE_H
